Fully customizable SwiftUI Video Player for iOS and tvOS

Detalles del producto

$482.25
cart Añadir al carrito favorites Agregar a los favoritos
Guía del usuario Capturas de pantalla Vista previa Video

Desarrollador

avatar
Michael wyndot
Solicitar muestra Enviar mensaje

Jun 25, 2024

Hablar con el vendedor

Detalles del producto



MPlayer - Customizable Video Player for SwiftUI



MPlayer is a cutting-edge video player designed exclusively for SwiftUI, offering unparalleled customization options for developers. Unlike traditional Apple video players like VideoPlayer and AVPlayerViewController, MPlayer empowers developers with complete control over the user interface and player functionality, enabling the creation of unique and branded video playback experiences.



Key Features:



  • Full Customization: Tailor every aspect of the video player UI to match your application's design and user experience requirements.

  • SwiftUI Integration: Seamlessly integrates into SwiftUI projects, leveraging the declarative syntax and powerful capabilities of SwiftUI.

  • Advanced Features: Supports custom control buttons, progress bars, thumbnail seeking, and interactive elements for a rich viewing experience.

  • Extensibility: Designed to be extensible, allowing developers to add new functionalities and customize existing ones to meet specific application needs.



MPlayer is the ultimate solution for developers seeking to transcend the limitations of standard video players and deliver a truly unique and engaging video playback experience within their SwiftUI applications.



Features:



  • MPlayer is specifically designed for SwiftUI and is easy to use.

  • Enjoy full customization options to create a tailored video player.

  • Supports thumbnail seeking for quick navigation.

  • Compatible with AirPlay for seamless streaming.

  • Picture-in-Picture (PiP) support for multitasking.

  • Integrates with Media Player Now Playing Info Update for enhanced control.



- MPlayer is designed specifically for SwiftUI and simple to use
- MPlayer is fully customizable
- MPlayer supports thumbnail seeking
- MPlayer supports AirPlay
- MPlayer supports PiP
- MPlayer supports Media Player Now Playing Info Update

Instrucciones de instalación

1. Unzip the package to a folder accessable from your XCode project
2. In XCode, File -> Add Package Dependences
3. In the XCode Add Package Dependencies dialog, Click on `Add Local...` and select your package folder and click on `Add Package`.
4. In your code, define your `Playable` item, here is an example
struct VOD: Playable {
let url: URL
let thumbnailVideoUrl: URL?
let posterUrl: URL
let title: String
let description: String
let isVideo: Bool = true
let isLiveStream: Bool = false
var artwork: MPMediaItemArtwork?
}

extension VOD {
static var sintel: VOD {
VOD(url: URL(string: "https://media-io.s3.us-west-1.amazonaws.com/sintel/playlist.m3u8")!,
thumbnailVideoUrl: URL(string: "https://media-io.s3.us-west-1.amazonaws.com/sintel-thumbnail/sintel-thumbnail.mp4")!,
posterUrl: URL(string: "https://media-io.s3.us-west-1.amazonaws.com/Poster.jpg")!,
title: "Sintel",
description: "Sintel is an open movie from the Blender Foundation licensed under the Creative Commons Attribution 3.0 license.")
}
}
5. Then you can use the `PlayerView` anywhere in your code
PlayerView(asset: VOD.sintel,
configuration: PlayerConfiguration(controlsDismissTimeout: 10, stepInterval: 15, scrubber: .default, seekbarStyle: .default, style: .init()))
6. To customize the Player, use `PlayerConfiguration`, `PLayerStyle, `SeekBarStyle`, `ScrubberStyle` and `VolumeBarStyle`.

Instrucciones de cambio y adaptación

To support thumbnail seeking, you need provide a smaller compressed video Url. Your can use ffmpeg to compress the video
ffmpeg -I 2048-stereo.mp4 -vf "scale=-1:110" -c:v libx264 -crf 28 -preset veryfast -an -movflags faststart sintel-thumbnail.mp

To customize the Player, use `PlayerConfiguration`.
struct PlayerConfiguration {
let controlsDismissTimeout: TimeInterval // in seconds
let stepInterval: Int // every step is 5 seconds, if specify 2, player will forward / backward 10 seconds every step
let scrubber: ScrubberConfiguration
let seekbarStyle: SeekBarStyle
let style: PLayerStyle
}

struct PLayerStyle {
let playImage: Image
let pauseImage: Image
let goforwardImage: Image
let gobackwardImage: Image
let optionsImage: Image
let optionCheckmarkImage: Image
let accentColor: Color
let borderColor: Color
let backgrounColor: Color
let playPauseButtonSize: CGSize
let forwardBackwordButtonSize: CGSize
let airplayButtonSize: CGSize
let pipButtonSize: CGSize
let optionsButtonSize: CGSize
let optionsMenuMinSize: CGSize
let optionsMenuCornerRadius: CGFloat
let optionsMenuBackgroundColor: Color
let optionsMenuTextColor: Color
}

public struct SeekBarStyle {
let scrubberStyle: ScrubberStyle
let thumbnailHeight: CGFloat
let timeFont: Font
}

struct ScrubberStyle {
let height: CGFloat
let padding: CGFloat
let cornerRadius: CGFloat
let backgroundColor: Color
let highlightColor: Color
let outlineWidth: CGFloat
let outlineColor: Color
}

public struct VolumeBarStyle {
let scrubberStyle: ScrubberStyle
let mutedImage: Image
let volume1Image: Image
let volume2Image: Image
let volume3Image: Image
let buttonSize: CGSize
}

Estadísticas de precios

Estadísticas de precios

Precio máximo
$482.25
Precio promedio
$482.25
Precio mínimo
$482.25
Pronóstico de precios IA
$NA

Vista previa

Vista previa limitada


El producto real contiene todos los archivos y el completo código fuente

Comprobar dependencias

Ver dependencias externas del producto

Archivos de muestra seleccionados al azar

Estadísticas de los archivos

Jerarquía

Elija un archivo de muestra
X
user-symbol

Mantengase en contacto

Obtenga consejos prácticos para empresas y desarrolladores.

Conozca las necesidades de la comunidad de PieceX para vender proyectos de código fuente.

Sea el primero en conocer los últimos fuentes gratuitos.